#!usr/bin/env python3.6  
#-*- coding:utf-8 -*-  
""" 
@author:iBoy 
@file: No.16.py 
@time: 2019/03/07
"""
#
# 银行在打印票据的时候，常常需要将阿拉伯数字表示的人民币金额转换为大写表示，现在请你来完成这样一个程序。
#
# 在中文大写方式中，0到10以及100、1000、10000被依次表示为：    零 壹 贰 叁 肆 伍 陆 柒 捌 玖 拾 佰 仟 万
#
# 以下的例子示范了阿拉伯数字到人民币大写的转换规则：
#
# 1	壹圆
#
# 11	壹拾壹圆
#
# 111	壹佰壹拾壹圆
#
# 101	壹佰零壹圆
#
# -1000	负壹仟圆
#
# 1234567	壹佰贰拾叁万肆仟伍佰陆拾柒圆
#
# 现在给你一个整数a(|a|<100000000), 请你打印出人民币大写表示.
#
# 例如：a=1
#
# 则输出：壹圆

def f(n): # n < 10*8
    if n==0:
        return '零圆'
    w0 = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']
    w1 = ['圆','拾','佰','仟','万','拾','佰','仟']
    r = []
    L = [int(i) for i in str(n)]
    t = 0
    while t<len(L):
        if t>0 and L[t-1]==0: # common
            r.append('零')
        r.append(w0[L[t]] + w1[len(L)-t-1])
        t += 1
        while t<len(L) and L[t]==0: # ***while-while*** # fix bug 1000001 "壹佰零壹圆"
            if t+4==len(L)-1 and L[t]==0:
                r.append('万')
                L[t]==1
            t += 1
    return ''.join(r)

def p(n): # n < 10*8
    return f(n) if n>=0 else '负'+f(-n)

a = 1234567
print(p(a))


